package modele;

/**
 * Classe mère des obstacles
 */
public abstract class Obstacle extends Sprite {

	//>>>Attributs
	private static final long serialVersionUID = 1L;
	private Integer obsDir;

	//>>>Constructeur

	/**
	 * Constructeur de la classe
	 * @param x La position initiale de l'obstacle sur l'axe X
	 * @param y La position initiale de l'obstacle sur l'axe Y
	 */
	public Obstacle(int x, int y) {
		super(x, y, Commune.LARGEUR_OBSTACLE, Commune.HAUTEUR_OBSTACLE);

		double proba = Math.random();
		if (proba<Commune.PROBA_OBSTACLE_MOBILE){
			if (proba>Commune.PROBA_OBSTACLE_MOBILE/2){
				obsDir = 1;
			}
			else{
				obsDir = -1;
			}
		}

	}

	//>>>Méthodes
	public void deplacer() {
		if (obsDir != null){
			x += obsDir*Commune.PAS_OBSTACLE_MOBILE;
			if ((x < 0) || (x > Commune.LARGEUR-Commune.LARGEUR_OBSTACLE)){
				obsDir *= -1;
			}
		}
	}

	/**
	 * Méthode scrolling pour l'obstacle.
	 * @param unPas
	 */
	public void scrolling(double unPas){ //Deplacement des obstacles à vitesse constante pour le scrolling

		if (unPas>1){
			unPas*=0.98; //Fait baisser le pas et donc la vitesse
			y+=unPas;
		}
	}
}
